package com.woniuxy.util;

import org.omg.PortableInterceptor.INACTIVE;

import java.util.Arrays;
import java.util.List;

/**
 * @author dingpf
 * @version 1.0
 * @descriptionConsumer
 * @create 2025/5/7 9:46
 */
@FunctionalInterface
interface Foo{
     Integer f1(int i, int j);
}


public class lombda {

    public static void main(String[] args) {
        //lombda就是替代代码中出现的匿名类内部类语法糖写法
        //匿名类内部类: 即使直接new接口
        //1:把接口名删除 ，加上 ->
        //2:把接口中的方法体全部删除，只保留一个大括号就可以了
        //匿名类内部类能改成lombda有一个要求：该接口中只能有一个抽象方法
        //函数式接口：该接口中只能有一个抽象方法
        //java8在接口中允许方法有方法体
//        Thread thread = new Thread(() -> {
////
////        });
        //1:无参数无返回值,当方法体只有一行代码，大括号可以省略
        //Foo foo =  () ->  System.out.println("1111");
        // foo.f1();
        //2:无参数有返回值, 只有一行代码大括号可以省略，但是 return也要省略
        //Foo foo = () -> 100;
        //System.out.println(foo.f1());
        //3: 有参数无返回值, 参数类型都可以省略不写，只有一个参数时，小括号都可以省略不写
        //Foo foo =  (i, j)  ->  System.out.println( i * j);
        //foo.f1(2,3);
        //4: 有参数有返回值
       // Foo foo = (i,j) -> i + j;

       // System.out.println(foo.f1(3, 3));

        List<String> list = Arrays.asList("2", "5", "3","3", "4", "7");
        //对该集合去重，排序，然后用一个新的集合接

        list.forEach( e ->  System.out.println(e) ); //遍历集合

    }
}
